initRTE("./images/", "./", "", true);
function submitForm() {
	//make sure hidden and iframe values are in sync for all rtes before submitting form
	updateRTEs();
}
function criaRTE(name, texto){
	var rte1 = new richTextEditor(name);
	rte1.html = texto;
	rte1.toolbar1 = false;
	//enable all commands for demo
	rte1.cmdFormatBlock = false;
	rte1.cmdFontName = false;
	rte1.cmdFontSize = false;
	rte1.cmdIncreaseFontSize = true;
	rte1.cmdDecreaseFontSize = true;

	rte1.cmdBold = true;
	rte1.cmdItalic = true;
	rte1.cmdUnderline = false;
	rte1.cmdStrikethrough = false;
	rte1.cmdSuperscript = true;
	rte1.cmdSubscript = true;

	rte1.cmdJustifyLeft = false;
	rte1.cmdJustifyCenter = false;
	rte1.cmdJustifyRight = false;
	rte1.cmdJustifyFull = false;

	rte1.cmdInsertHorizontalRule = true;
	rte1.cmdInsertOrderedList = true;
	rte1.cmdInsertUnorderedList = true;

	rte1.cmdOutdent = false;
	rte1.cmdIndent = false;
	rte1.cmdForeColor = false;
	rte1.cmdHiliteColor = false;
	rte1.cmdInsertLink = true;
	rte1.cmdInsertImage = false;
	rte1.cmdInsertSpecialChars = false;
	rte1.cmdInsertTable = false;
	rte1.cmdSpellcheck = false;

	rte1.cmdCut = true;
	rte1.cmdCopy = true;
	rte1.cmdPaste = true;
	rte1.cmdUndo = true;
	rte1.cmdRedo = true;
	rte1.cmdRemoveFormat = true;
	rte1.cmdUnlink = true;

	rte1.toggleSrc = true;

	rte1.build();
}
function getXHTML(data){
	var XhTmL = new Html2Xhtml(data).parse();
	//iE bug lvl 1 ul just
	
	if(isIE){
		//alert("xhtml = "+XhTmL);
		var iniUl = XhTmL.indexOf("<ul");
		while(iniUl!=-1){
			var iniLi = XhTmL.indexOf("<li",iniUl+1);
			//if(!confirm("iniLi = " + iniLi)) return XhTmL;
			while(iniLi!=-1){
				var endLi = XhTmL.indexOf("</li>",iniLi+1);
				iniLi = XhTmL.indexOf("<li",iniLi+1);
				if(iniLi<endLi && iniLi!=-1){
					//if(!confirm("fechar " + iniLi)) return XhTmL;
					XhTmL = XhTmL.substring(0,iniLi)+"</li>"+XhTmL.substring(iniLi);
					iniLi = XhTmL.indexOf("<li",iniLi+1);
					//if(!confirm("iniLi = " + iniLi)) return XhTmL;
				}
			}
			iniUl = XhTmL.indexOf("<ul",iniUl+1);
		}
		while(XhTmL.indexOf(baseUrl)!=-1)
			XhTmL = XhTmL.replace(baseUrl,"");
	}
	return XhTmL;
}
function Html2Xhtml(data){
	this.data=data||''
}
Html2Xhtml.prototype.setHTML=function(data){
	this.data=data||this.data
}
Html2Xhtml.prototype.parse=function(){
	var state=0;
	var xhtml='';
	var p=0;
	var unget=false;
	var tagname='';
	var attrname='';
	var attrval='';
	var quot='';
	var data=this.data;
	var len=data.length;
	var phpval='';
	var tagtype=0;
	var insidepre=false;
	while(1){
		if(p>=len&&!unget){
			return xhtml;
		}
		if(unget){
			unget=false;
		}else{
			var c=data.substr(p++,1);
		}
		switch(state){
			case 0:
				if(c=='<'){
					state=1;
					break;
				}
				var cc=c.charCodeAt();
				if(Html2Xhtml.charEntities[cc]){
					xhtml+='&'+Html2Xhtml.charEntities[cc]+';';
				}else{
					xhtml+=c;
				}
				break;
			case 1:
				if(/[a-zA-Z]/.test(c)){
					state=2;
					tagtype=1;
					tagname=c.toLowerCase();
					break;
				}
				if(c=='/'){
					state=2;
					tagtype=-1;
					break;
				}
				if(c=='!'){
					if(data.substr(p,2)=='--'){
						xhtml+='<!--';
						p+=2;
						state=9;
						break;
					}
					xhtml+='<!';
					state=10;
					break;
				}
				if(c=='?'){
					state=11;
					xhtml+='<'+'?';
					break;
				}
				xhtml+='&lt;';
				unget=true;
				state=0;
				break;
			case 2:
				if(Html2Xhtml.isSpaceChar[c]){
					xhtml+=(!insidepre&&tagtype>0&&Html2Xhtml.hasNLBefore[tagname]&&xhtml.length&&xhtml.substr(xhtml.length-1,1)!='\n'?'\n':'')+(tagtype>0?'<':'</')+tagname;
					state=3;
					break;
				}
				if(c=='/'){
					xhtml+=(!insidepre&&tagtype>0&&Html2Xhtml.hasNLBefore[tagname]&&xhtml.length&&xhtml.substr(xhtml.length-1,1)!='\n'?'\n':'')+(tagtype>0?'<':'</')+tagname;
					if(data.substr(p,1)!='>'){
						state=3;
						break;
					}
					state=4;
					break;
				}
				if(c=='>'){
					xhtml+=(!insidepre&&tagtype>0&&Html2Xhtml.hasNLBefore[tagname]&&xhtml.length&&xhtml.substr(xhtml.length-1,1)!='\n'?'\n':'')+(tagtype>0?'<':'</')+tagname;
					unget=true;
					state=4;
					break;
				}
				tagname+=c.toLowerCase();
				break;
			case 3:
				if(Html2Xhtml.isSpaceChar[c]){
					break;
				}
				if(c=='/'){
					if(data.substr(p,1)!='>'){
						break;
					}
					state=4;
					break;
				}
				if(c=='>'){
					unget=true;
					state=4;
					break;
				}
				attrname=c.toLowerCase();
				attrval='';
				state=5;
				break;
			case 4:
				xhtml+=(Html2Xhtml.isEmptyTag[tagname]?' />':'>')+(!insidepre&&tagtype<0&&Html2Xhtml.hasNLAfter[tagname]&&p<len&&data.substr(p,1)!='\n'?'\n':'');
				if(tagtype>0&&Html2Xhtml.dontAnalyzeContent[tagname]){
					state=13;
					attrname=attrval=quot='';
					tagtype=0;
					break;
				}
				if(tagname=='pre'){
					insidepre=!insidepre;
				}
				state=0;
				tagname=attrname=attrval=quot='';
				tagtype=0;
				break;
			case 5:
				if(Html2Xhtml.isSpaceChar[c]){
					xhtml+=' '+attrname;
					if(Html2Xhtml.isEmptyAttr[attrname]){
						xhtml+='="'+attrname+'"'
					}
					state=3;
					break;
				}
				if(c=='/'){
					xhtml+=' '+attrname;
					if(Html2Xhtml.isEmptyAttr[attrname]){
						xhtml+='="'+attrname+'"';
					}
					if(data.substr(p,1)!='>'){
						state=3;
						break;
					}
					state=4;
					break;
				}
				if(c=='>'){
					xhtml+=' '+attrname;
					if(Html2Xhtml.isEmptyAttr[attrname]){
						xhtml+='="'+attrname+'"';
					}
					unget=true;
					state=4;
					break;
				}
				if(c=='='){
					xhtml+=' '+attrname+'=';
					state=6;
					break;
				}
				if(c=='"'||c=="'"){
					attrname+='?';
				}else{
					attrname+=c.toLowerCase();
				}
				break;
			case 6:
				if(Html2Xhtml.isSpaceChar[c]){
					xhtml+=(Html2Xhtml.isEmptyAttr[attrname]?'"'+attrname+'"':'""');
					state=3;
					break;
				}
				if(c=='>'){
					xhtml+=(Html2Xhtml.isEmptyAttr[attrname]?'"'+attrname+'"':'""');
					unget=true;
					state=4;
					break;
				}
				if(c=='/'&&data.substr(p,1)=='>'){
					xhtml+=(Html2Xhtml.isEmptyAttr[attrname]?'"'+attrname+'"':'""');
					state=4;
					break;
				}if(c=='"'||c=="'"){
					quot=c;
					state=8;
					break
				}
				attrval=c;
				state=7;
				break;
			case 7:
				if(Html2Xhtml.isSpaceChar[c]){
					xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';
					state=3;
					break;
				}
				if(c=='/'&&data.substr(p,1)=='>'){
					xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';
					state=4;
					break;
				}
				if(c=='>'){
					unget=true;
					xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';
					state=4;
					break;
				}
				attrval+=c;
				break;
			case 8:
				if(c==quot){
					xhtml+='"'+Html2Xhtml.escapeQuot(attrval,'"')+'"';
					state=3;
					break;
				}
				attrval+=c;
				break;
			case 9:
				if(c=='-'&&data.substr(p,2)=='->'){
					p+=2;
					xhtml+='-->';
					state=0;
					break;
				}
				xhtml+=c;
				break;
			case 10:
				if(c=='>'){
					state=0;
				}
				xhtml+=c;
				break;
			case 11:
				if(c=="'"||c=='"'){
					quot=c;
					state=12;
					break;
				}
				if(c=='?'&&data.substr(p,1)=='>'){
					state=0;
					xhtml+='?'+'>';
					p++;
					break;
				}
				xhtml+=c;
				break;
			case 12:
				if(c==quot){
					state=11;
					xhtml+=quot+Html2Xhtml.escapeQuot(phpval,quot)+quot;
					phpval=quot='';
					break;
				}
				phpval+=c;
				break;
			case 13:
				if(c=='<'&&data.substr(p,tagname.length+1).toLowerCase()=='/'+tagname){
					unget=true;
					state=0;
					tagname='';
					break;
				}
				if(tagname=='textarea'){
					xhtml+=Html2Xhtml.escapeHTMLChar(c);
				}else{
					xhtml+=c;
				}
				break;
			}
		}
		return xhtml;
	};
Html2Xhtml.escapeQuot=function(str,quot){
	if(!quot){
		quot='"';
	}
	if(quot=='"'){
		return str.replace(/"/ig,'\\"')}return str.replace(/'/ig,"\\'");
	};
Html2Xhtml.escapeHTMLChar=function(c){
	if(c=='&'){
		return'&amp;';
	}
	if(c=='<'){
		return'&lt;';
	}
	if(c=='>'){
		return'&gt;';
	}
	var cc=c.charCodeAt();
	if(Html2Xhtml.charEntities[cc]){
		return'&'+Html2Xhtml.charEntities[cc]+';';
	}else{
		return c;}
	};
Html2Xhtml.isSpaceChar={' ':1,'\r':1,'\n':1,'\t':1};
Html2Xhtml.isEmptyTag={'area':1,'base':1,'basefont':1,'br':1,'hr':1,'img':1,'input':1,'link':1,'meta':1,'param':1};
Html2Xhtml.isEmptyAttr={'checked':1,'compact':1,'declare':1,'defer':1,'disabled':1,'ismap':1,'multiple':1,'noresize':1,'nosave':1,'noshade':1,'nowrap':1,'readonly':1,'selected':1};
Html2Xhtml.hasNLBefore={'div':1,'p':1,'table':1,'tbody':1,'tr':1,'td':1,'th':1,'title':1,'head':1,'body':1,'script':1,'comment':1,'li':1,'meta':1,'h1':1,'h2':1,'h3':1,'h4':1,'h5':1,'h6':1,'hr':1,'ul':1,'ol':1,'option':1,'link':1};
Html2Xhtml.hasNLAfter={'html':1,'head':1,'body':1,'p':1,'th':1,'style':1};
Html2Xhtml.dontAnalyzeContent={'textarea':1,'script':1,'style':1};
Html2Xhtml.charEntities={
	160:'nbsp',
	161:'iexcl',
	162:'cent',
	163:'pound',
	164:'curren',
	165:'yen',
	166:'brvbar',
	167:'sect',
	168:'uml',
	169:'copy',
	170:'ordf',
	171:'laquo',
	172:'not',
	173:'shy',
	174:'reg',
	175:'macr',
	176:'deg',
	177:'plusmn',
	178:'sup2',
	179:'sup3',
	180:'acute',
	181:'micro',
	182:'para',
	183:'middot',
	184:'Cedil',
	185:'sup1',
	186:'ordm',
	187:'raquo',
	188:'frac14',
	189:'frac12',
	190:'frac34',
	191:'iquest',
	192:'Agrave',
	193:'Aacute',
	194:'Acirc',
	195:'Atilde',
	196:'Auml',
	197:'Aring',
	198:'Aelig',
	199:'Ccedil',
	200:'Egrave',
	201:'Eacute',
	202:'Ecirc',
	203:'Euml',
	204:'Igrave',
	205:'Iacute',
	206:'Icirc',
	207:'Iuml',
	208:'eth',
	209:'Ntilde',
	210:'Ograve',
	211:'Oacute',
	212:'Ocirc',
	213:'Otilde',
	214:'Ouml',
	215:'times',
	216:'Oslash',
	217:'Ugrave',
	218:'Uacute',
	219:'Ucirc',
	220:'Uuml',
	221:'Yacute',
	222:'thorn',
	223:'szlig',
	224:'agrave',
	225:'aacute',
	226:'acirc',
	227:'atilde',
	228:'auml',
	229:'aring',
	230:'aelig',
	231:'ccedil',
	232:'egrave',
	233:'eacute',
	234:'ecirc',
	235:'euml',
	236:'igrave',
	237:'iacute',
	238:'icirc',
	239:'iuml',
	240:'eth',
	241:'ntilde',
	242:'ograve',
	243:'oacute',
	244:'ocirc',
	245:'otilde',
	246:'ouml',
	247:'divide',
	248:'oslash',
	249:'ugrave',
	250:'uacute',
	251:'ucirc',
	252:'uuml',
	253:'yacute',
	254:'thorn',
	255:'yuml',
	338:'oelig',
	339:'oelig',
	352:'scaron',
	353:'scaron',
	376:'yuml',
	710:'circ',
	732:'tilde',
	8194:'ensp',
	8195:'emsp',
	8201:'thinsp',
	8204:'zwnj',
	8205:'zwj',
	8206:'lrm',
	8207:'rlm',
	8211:'ndash',
	8212:'mdash',
	8216:'lsquo',
	8217:'rsquo',
	8218:'sbquo',
	8220:'ldquo',
	8221:'rdquo',
	8222:'bdquo',
	8224:'dagger',
	8225:'dagger',
	8240:'permil',
	8249:'lsaquo',
	8250:'rsaquo',
	8364:'euro',
	402:'fnof',
	913:'alpha',
	914:'beta',
	915:'gamma',
	916:'delta',
	917:'epsilon',
	918:'zeta',
	919:'eta',
	920:'theta',
	921:'iota',
	922:'kappa',
	923:'lambda',
	924:'mu',
	925:'nu',
	926:'xi',
	927:'omicron',
	928:'pi',
	929:'rho',
	931:'sigma',
	932:'tau',
	933:'upsilon',
	934:'phi',
	935:'chi',
	936:'psi',
	937:'omega',
	945:'alpha',
	946:'beta',
	947:'gamma',
	948:'delta',
	949:'epsilon',
	950:'zeta',
	951:'eta',
	952:'theta',
	953:'iota',
	954:'kappa',
	955:'lambda',
	956:'mu',
	957:'nu',
	958:'xi',
	959:'omicron',
	960:'pi',
	961:'rho',
	962:'sigmaf',
	963:'sigma',
	964:'tau',
	965:'upsilon',
	966:'phi',
	967:'chi',
	968:'psi',
	969:'omega',
	977:'thetasym',
	978:'upsih',
	982:'piv',
	8226:'bull',
	8230:'hellip',
	8242:'prime',
	8243:'prime',
	8254:'oline',
	8260:'frasl',
	8472:'weierp',
	8465:'image',
	8476:'real',
	8482:'trade',
	8501:'alefsym',
	8592:'larr',
	8593:'uarr',
	8594:'rarr',
	8595:'darr',
	8596:'harr',
	8629:'crarr',
	8656:'larr',
	8657:'uarr',
	8658:'rarr',
	8659:'darr',
	8660:'harr',
	8704:'forall',
	8706:'part',
	8707:'exist',
	8709:'empty',
	8711:'nabla',
	8712:'isin',
	8713:'notin',
	8715:'ni',
	8719:'prod',
	8721:'sum',
	8722:'minus',
	8727:'lowast',
	8730:'radic',
	8733:'prop',
	8734:'infin',
	8736:'ang',
	8743:'and',
	8744:'or',
	8745:'cap',
	8746:'cup',
	8747:'int',
	8756:'there4',
	8764:'sim',
	8773:'cong',
	8776:'asymp',
	8800:'ne',
	8801:'equiv',
	8804:'le',
	8805:'ge',
	8834:'sub',
	8835:'sup',
	8836:'nsub',
	8838:'sube',
	8839:'supe',
	8853:'oplus',
	8855:'otimes',
	8869:'perp',
	8901:'sdot',
	8968:'lceil',
	8969:'rceil',
	8970:'lfloor',
	8971:'rfloor',
	9001:'lang',
	9002:'rang',
	9426:'copy',
	9674:'loz',
	9824:'spades',
	9827:'clubs',
	9829:'hearts',
	9830:'diams'
	};